package com.tmxk.service.impl.dept;

import com.tmxk.dao.dept.DeptMapper;
import com.tmxk.po.SysDept;
import com.tmxk.service.dept.DeptService;
import com.tmxk.utils.RedisSpaceName;
import com.tmxk.utils.RedisUtil;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

@Service
public class DeptServiceImpl implements DeptService {
    @Resource
    private DeptMapper deptMapper;
    @Resource
    private RedisUtil redisUtil;

    @Override
    public List<SysDept> queryAllDept() {
        List<SysDept> sysDepts = null;
        String deptRedis = RedisSpaceName.PROPERTY + RedisSpaceName.PROPERTY_SYS_DEPT;
        //缓存存在即查询缓存中
        if(redisUtil.hasKey(deptRedis)){
            sysDepts  = (List<SysDept>)redisUtil.get(deptRedis);
        }else{
            //缓存中不存在,查询数据库
            sysDepts = deptMapper.queryAllDept();
            // 更新缓存库
            redisUtil.set(deptRedis,sysDepts);
        }
        return sysDepts;

    }

    @Override
    public SysDept queryDeptById(Integer deptId) {
        return deptMapper.queryDeptById(deptId);
    }

    @Override
    public int saveSysDept(SysDept sysDept) {
        return deptMapper.saveSysDept(sysDept);
    }

    @Override
    public int updateSysDept(SysDept sysDept) {
        return deptMapper.updateSysDept(sysDept);
    }

    @Override
    public int deleteSysDeptById(Integer deptId) {
        return deptMapper.deleteSysDeptById(deptId);
    }
}
